package com.vivo.module.criteria;

/**
 * Criteria MetaData. Preserve criteria key and value.
 * 
 * @author vivo
 * @date 2007-12-12
 * 
 * @param <T> -
 *            Value type.
 * @param <V> -
 *            Type of criteria MetaData value.
 */
public interface CriteriaMetaData<T extends CriteriaMetaData, V> {

	/**
	 * Add Value to a Criteria.
	 * 
	 * @param value
	 * @return
	 */
	public T addValue(V value);

	/**
	 * @return - Criteria Key
	 */
	public String getKey();

	/**
	 * @return - Criteria value.
	 */
	public V getValue();

}
